#include "test25_StlConOfMap.h"

void test25_StlConOfMap::classMain()
{
	std::cout << "test25_StlConOfMap" << "\n";
}

// map = 映射
void test25_StlConOfMap::testMap()
{
	std::map<std::string, std::string> mapTT;//map默认构造函数: 
	std::map<int, std::string> mapStu;
	// 第一种 通过pair的方式插入对象
	mapStu.insert(std::pair<int, std::string>(3, "小张"));
	// 第二种 通过pair的方式插入对象
	mapStu.insert(std::make_pair(-1, "校长"));
	// 第三种 通过value_type的方式插入对象
	mapStu.insert(std::map<int, std::string>::value_type(1, "小李"));
	// 第四种 通过数组的方式插入值
	mapStu[3] = "小刘";
	mapStu[5] = "小王";

	// 查找
	int keyElem = 2;
	mapStu.find(keyElem); // 查找键key是否存在,若存在，返回该键的元素的迭代器；/若不存在，返回map.end();
	mapStu.count(keyElem); // 返回容器中key为keyElem的对组个数。对map来说，要么是0，要么是1。对multimap来说，值可能大于1。
	mapStu.lower_bound(keyElem); // 返回第一个key>=keyElem元素的迭代器。
	mapStu.upper_bound(keyElem); // 返回第一个key>keyElem元素的迭代器。
	mapStu.equal_range(keyElem); // 返回容器中key与keyElem相等的上下限的两个迭代器。

}


// multimap
void test25_StlConOfMap::testMultiMap()
{

}